package com.demo.java.OD401_450.OD427;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【小明能到达的最大坐标值(C&D卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146263177
 */
public class OdMain {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);

            // 读取指令数量n和每个指令的步数m
            int n = scanner.nextInt();
            int m = scanner.nextInt();

            // 创建一个数组，存储每条指令的步数
            int[] nums = new int[n];
            for (int i = 0; i < n; i++) {
                nums[i] = scanner.nextInt(); // 读取每条指令的步数
            }

            int cur_pos = 0, ans = 0; // 初始化当前位置和最大坐标
            for (int num : nums) {
                if (num == 0) {
                    continue; // 如果指令为0，则跳过
                }
                if (num == m) {
                    // 如果当前步数和给定的m相同，进行特殊处理
                    cur_pos += (num > 0) ? 1 : -1; // 根据步数的正负决定前进还是后退
                }
                cur_pos += num; // 更新当前位置
                ans = Math.max(ans, cur_pos); // 更新最大坐标
            }
            System.out.println(ans); // 输出最大坐标
        } catch (Exception e) {
            System.out.println(12345); // 异常处理，输出12345
        }
    }
}
